import cv2
import numpy as np


img = cv2.imread("../images/shudu.png", cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (0,0), fx=0.5, fy=0.5)

# kernel：卷积核，一个二维数组或矩阵。
# 卷积核的大小通常是奇数，如 3x3、5x5 等。
# 卷积核中的每个元素都是一个权重，用于在卷积过程中与图像像素相乘。
kernel_1 = np.array([
    [-1, 0, 1],
    [-2, 0, 2],
    [-1, 0, 1]
])
img_filter_2d = cv2.filter2D(
    img,
    -1,
    kernel_1
)
kernel_2 = kernel_1.T
img_filter_2d2 = cv2.filter2D(
    img,
    -1,
    kernel_2
)
img_grad = cv2.addWeighted(img_filter_2d,0.5,img_filter_2d2,0.5,0)
#hstack
img_stack = np.hstack([img,img_filter_2d,img_filter_2d2,img_grad])
cv2.imshow("img grad",img_stack)
cv2.waitKey()